package net.neptech.service;

import com.alibaba.cloud.ai.graph.OverAllState;
import net.neptech.model.ipc.InteractionRecord;

import java.util.List;
import java.util.Map;
/**
 * @Author HuangZhengmin
 * @desc  会话管理
 * @Date 2025/8/19 20:29
 * @Version 1.0
 */
public interface SessionService {
  /**
   * 创建新会话
   */
  String createSession(Long patientId);

  /**
   * 获取会话信息
   */
  Map<String, Object> getSession(String sessionId);

  /**
   * 保存会话状态到Redis
   */
  void saveSessionState(String sessionId, OverAllState state);

  /**
   * 从Redis获取会话状态
   */
  OverAllState getSessionState(String sessionId);

  /**
   * 记录会话交互
   */
  void recordInteraction(String sessionId, String userInput, String systemResponse, String nodeName);

  /**
   * 获取会话交互历史
   */
  List<InteractionRecord> getInteractionHistory(String sessionId);

  /**
   * 更新会话节点
   */
  void updateSessionNode(String sessionId, String nodeName);

  /**
   * 结束会话
   */
  void completeSession(String sessionId);

  /**
   * 处理用户输入并推进会话
   */
  Map<String, Object> processUserInput(String sessionId, Long patientId, String input);

  /**
   * 获取患者的所有会话
   */
  List<String> getPatientSessions(Long patientId);
}

